package com.cheng.example.atguigu.view2;

public class YieldDemo {

    /**
     * 微信公众号：Java技术栈
     *
     * 如果一定要用它的话，一句话解释就是：yield 方法可以很好的控制多线程，如执行某项复杂的YSFJwork时，如果担心占用资源过多，可以在完成某个重要的工作后使用 yield 方法让掉当前 CPU 的调度权，等下次获取到再继续执行，这样不但能完成自己的重要工作，也能给其他线程一些运行的机会，避免一个线程长时间占有 CPU 资源。
     * ————————————————
     */
    public static void main(String[] args) {
        Runnable runnable = () -> {
            for (int i = 0; i <= 100; i++) {
                System.out.println(Thread.currentThread().getName() + "-----" + i);
                if (i % 20 == 0) {
                    Thread.yield();
                }
            }
        };
        new Thread(runnable, "栈长").start();
        new Thread(runnable, "小蜜").start();
    }

}
